The Internet is an example of a collection of autonomous systems that define the administrative authority and routing policies of different organizations. Autonomous systems run interior gateway protocols within their boundaries and interconnect via exterior gateway protocols. A gateway here is defined as any entity that allows other devices to gain entrance to the network. The boundaries could be a domain or other sub-network defined by a policy or an enterprise. Examples of an interior gateway protocol may include Open Shortest Path First (OSPF), Interior Gateway Protocol (IGP), and Enhanced Interior Gateway Protocol (EIGP), as examples. Exterior gateway protocols may include Border Gateway Protocols (BGP).
BGP was introduced because the interior protocols typically do not scale beyond a particular enterprise. Border gateways exchange network reachability information with other border gateways, and use BGP to do so. This reachability information about the autonomous systems within a domain allows the border gateways to construct a graph of autonomous system connectivity from which routing loops can be pruned and allows some policy decisions at the system level to be enforced. BGP manages these communications and is run over a reliable transport protocol, such as the Transmission Control Protocol (TCP), between the two gateways exchanging information.
The initial exchange of information generally involves the two devices exchanging entire routing tables, with periodic updates sent to modify the routing table to add or delete entries. A major problem with the current implementation of BGP is scalability in the face of heavy routing churns. During the Code Red 1, Code Red 2 and Nimda worm attacks, these update messages increased to over 6.67 million from an average of 2 million normally seen. The currently deployed BGP software, where all the BGP functionality is processed by a central processor in each device caused the processors to become overwhelmed and caused BGP session resets. In addition, the TCP KEEPALIVE messages that indicate which devices are still operating were not delivered, also leading to BGP sessions to be reset.
In addition to these issues, BGP gateways suffer from security vulnerabilities, such as bogus TCP SYN messages, referred to as TCP SYN attacks, tampered BGP UPDATE messages announcing an illegal or invalid next hop, etc. These types of attacks succeed because the centralized architecture of BGP devices require these messages to be processed by the central processor which quickly becomes overwhelmed, denying processing of legitimate requests from other devices.